package com.cdyx.outsideprescription.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * 配合swagger创建controller
 */
@RestController
@Api("Demo模块Api")
public class DemoController {
    @PostMapping("/user")
    @ApiOperation("添加用户")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "map",//参数名字
                    value = "这是一个添加",//参数的描述
                    required = true,//是否是必须要传的参数，true是
                    paramType = "body"//参数类型 body 代表json
            )
    })
    public Map add(@RequestBody Map map){
        return map;
    }

    //根据id删除数据。
    @DeleteMapping("/user/{id}")
    @ApiOperation("删除用户")//API中说明的该类的作用
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",//参数名字
                    value = "用户id",//参数的描述
                    required = true,//是否必须传参数，true是
                    paramType = "path",//参数类型 path代表路径参数
                    dataType = "int")//参数类型 int
    })
    public String deltete(@PathVariable int id){
        return "{code:200,msg:删除"+id+"成功}";
    }
    //根据传入的对象信息进行更新
    @PutMapping("/user")
    @ApiOperation("更新用户")//API中说明的该类的作用
    @ApiImplicitParams({
            @ApiImplicitParam(name = "map",//参数名字
                    value = "更新的用户",//参数的描述
                    required = true,//是否必须传参数，true是
                    paramType = "body",//参数类型 body
                    dataType = "map")//参数类型 int
    })
    public Map update(@RequestBody Map map){
        return map;
    }
    @GetMapping("/user/{id}")
    @ApiOperation("查询永不用户")//API中说明的该类的作用
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",//参数名字
                    value = "查询的用户id",//参数的描述
                    required = true,//是否必须传参数，true是
                    paramType = "path",//参数类型 body
                    dataType = "int")//参数类型 int
    })
    public Map getOne(@PathVariable int id){
        Map<String,Object> map = new HashMap<>();
        map.put("id",id);
        map.put("name","张三");
        map.put("birthday",new Date());
        return map;
    }
}
